package com.HUT;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        //1.BM12判断是不是二叉搜索树
        Stack<Integer> stack = new Stack<>();
        ArrayList<Integer> sort = new ArrayList<Integer>();
        public boolean isValidBST (TreeNode root) {
            if (root == null) {
                return true;
            }
            isValidBST(root.left);
            sort.add(root.val);
            isValidBST(root.right);
            for (int i = 1; i < sort.size(); i++) {
                //一旦有降序，则不是搜索树
                if (sort.get(i - 1) > sort.get(i))
                    return false;
            }
            return true;
        }
        //2.BM4大数加法
        public String solve (String s, String t) {
            //若是其中一个为空，返回另一个
            if (s.length() <= 0)
                return t;
            if (t.length() <= 0)
                return s;
            //让s为较长的，t为较短的
            if (s.length() < t.length()) {
                String temp = s;
                s = t;
                t = temp;
            }
            int carry = 0; //进位标志
            char[] res = new char[s.length()];
            //从后往前遍历较长的字符串
            for (int i = s.length() - 1; i >= 0; i--) {
                //转数字加上进位
                int temp = s.charAt(i) - '0' + carry;
                //转较短的字符串相应的从后往前的下标
                int j = i - s.length() + t.length();
                //如果较短字符串还有
                if (j >= 0) {
                    //长字符串与短字符串相加
                    temp += t.charAt(j) - '0';
                }
                //取进位
                carry = temp / 10;
                //去十位
                temp = temp % 10;
                //将个位的结果放入res数组中
                res[i] = (char)(temp + '0');
            }
            //将字符数组转化为字符串
            String output = String.valueOf(res);
            //最后的进位
            if (carry == 1)
                output = '1' + output;
            return output;
        }
        Queue queue = new LinkedList()
    }
}